/*
 * 英才汇硕信息科技有限公司 拥有本软件版权 2021 并保留所有权利。
 * Copyright 2021, YCHS Information&Science Techology Co.,Ltd,
 * All right reserved.
 */
package com.ychs.lawyerback.controller;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.ychs.lawyerback.common.R;
import com.ychs.lawyerback.dto.LoginReqDTO;
import com.ychs.lawyerback.service.UserService;
import jakarta.validation.Valid;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

import java.util.Map;

/**
 * @author mayujing
 * @version 1.0
 */
@RestController // 标记这是一个接口控制器，返回JSON数据
public class LoginController {
    @Autowired // 注入UserService
    private UserService userService;


    /**
     * 这里的@Valid是触发dto中参数校验的开关
     * dto中的校验注解必须配合Controller层的@Valid才能生效
     * @param loginReqDTO
     * @return
     */

    // 登录接口：前端用POST方法访问 /login，传递JSON格式的用户名和密码
    @PostMapping("/login")
    public R<?> login(@Valid @RequestBody LoginReqDTO loginReqDTO) throws JsonProcessingException {
        // @Valid：触发DTO中的参数校验（比如用户名不能为空）
        // @RequestBody：接收前端的JSON数据并转换为LoginReqDTO对象
        Map<String, Object> map = userService.login(loginReqDTO);
        return R.success(map);  // 用统一响应类返回结果
        //Map 通过 R.success(map) 返回时，Spring MVC 框架会自动将其序列化为 JSON 字符串，无需手动调用 JSONUtil.toJsonStr
    }

}
